package model.proxy
{
	import model.Utilisateur;
	
	import mx.controls.Alert;
	import mx.rpc.events.FaultEvent;
	import mx.rpc.events.ResultEvent;
	import mx.rpc.remoting.mxml.RemoteObject;
	
	import org.puremvc.as3.interfaces.IProxy;
	import org.puremvc.as3.patterns.proxy.Proxy; 
	
	public class LoginProxy extends Proxy implements IProxy
	{
		public static const NAME : String = 'LoginProxy';
		public static const AUTHENTIFICATION : String = "Authentification";
		public static var user : Utilisateur;
		
		private var remoteObject : RemoteObject = null;
		
		public function LoginProxy(data:Object=null)
		{
			super(NAME, data);
			
			remoteObject = new RemoteObject();
			remoteObject.destination = "RemoteServiceSession";
			remoteObject.source = "RemoteServiceSession";
			remoteObject.endpoint = ApplicationFacade.SERVEUR;
		}
		
		public function identification(utilisateur:Utilisateur):void
		{
			remoteObject.addEventListener(ResultEvent.RESULT, utilisateurObtenu);
			remoteObject.addEventListener(FaultEvent.FAULT, onFault);
			remoteObject.obtenirUtilisateur(utilisateur.login,utilisateur.mdp);
		}
		
		private function utilisateurObtenu(event:ResultEvent):void
		{
			if (event.result is Utilisateur) {
				user = (event.result as Utilisateur);
				sendNotification(AUTHENTIFICATION, event.result);
			}
			else
				Alert.show("Echec de l'authentification");
		}
		
		private function onFault(event:FaultEvent):void
		{
			trace("Fault");			
		}

	}
}